<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <script>
      /*
            短路：是指右边代码不执行了
            发生于 && 和 ||
            &&： 一假则假，左边为假就短路
            ||： 一真则真，左边为真就短路

            逻辑运算符组成的式子叫逻辑运算式

            既然是运算式肯定有运算结果

            逻辑运算式的运算结果不一定是布尔值
                而是跟短路有关
                    如果短路了，逻辑运算式的整个结果就是左边的结果
                    如果没短路，逻辑运算式的结果就是右边的结果
        */

      // true && alert(1) // 弹出1
      // false && alert(2) // 不弹

      // true || alert(1) // 不弹1
      // false || alert(2) // 弹2

      // const res1 = 10 && 20
      // console.log(res1) // 20

      // const res2 = 10 && 20 + 3
      // console.log(res1) // 23

      // alert(1||2) // 弹出1

      // let num1 = 10
      // let num2 = 20
      // const res = num1 - 10 && ++num2
      // console.log(num1, num2, res) // 10 20 0

      // // 这不是数字，这是字符串，所以它会先比较第一位
      // console.log('10' > '2') // false
      // // 因为不同类型，它隐式转换成了数字
      // console.log('10' > 2) // true
      // console.log(10 > 2) // true

      // console.log( {} == {})
      // console.log( [] == [])
      // console.log( [10,20,30] == [10,20,30])
      // console.log( ![] == [])
      // console.log( !{} == {})
    </script>
  </body>
</html>
